1. Field of the Invention
Aspects of the present invention relate to an apparatus and method of selecting an automatic repeat request (ARQ) mode or a forward error correction (FEC) mode according to a status of a buffer of a receiver.
2. Description of the Related Art
Two methods are used in order to guarantee reliability of data transmission: an automatic repeat request (ARQ) method and a forward error correction (FEC) method. In the ARQ method, a client transmits an acknowledgement (ACK) message to a server, which acknowledges that data transmitted from the server has been received. The server does not re-transmit data packets about which the ACK message is received. The server does re-transmit data packets to the client if the ACK message is not received, without waiting for a re-transmission request. By re-transmitting the data packets about which the ACK messages are not received, the client receives all of the data packets. The ARQ method is used when data is transmitted according to a transmission control protocol (TCP).
In the FEC method, the client does not transmit an ACK message. The client does not transmit information to the server about whether data is received. In order to correct a transmission error that can occur while transmitting the data, before transmitting the data the server adds to the data predetermined redundancy data for error correction. In order to guarantee reliability of data transmission without any separate feedback (such as the ACK message), an error correction method is provided while transmitting the data. The FEC method is used when the data is transmitted according to a user datagram protocol (UDP).
As wireless networks, such as Wibro/Wireless LANs, etc., develop, use of portable consumer devices increases. However, in transmission of video data in a wireless network, channel conditions, packet erasure, a multicast, and a broadcast are negatively affected by several constraints, including limits on data re-transmission. Accordingly, the FEC method is widely used as a streaming service error correction method in conventional mobile terminals. In streaming, the FEC method can effectively perform error correction, but the load on a network increases due to the large amount of redundancy data needed for the error correction. The FEC method transmits unnecessary redundancy data, which may cause an overload in the network. An increase in unnecessary redundancy data in a wireless network having a limited bandwidth can cause a heavy load on the network.
The ARQ method can guarantee reliability of data transmission. However, the server needs to re-transmit a data packet according to feedback received from the client, and thus the ARQ method is not suitable for one-to-multiple data communication, such as multicasting. When a real-time service, such as a streaming service, is provided via multicasting, data may be useless even when data is re-transmitted, due to the passage of time.
A method combining the ARQ method with the FEC method is also used. An example is data communication using the real-time transport protocol (RTP). The server multicasts data to a plurality of clients. Upon receiving the data, the clients determine whether some data packets are not received based on information included in a header of an RTP packet, such as a sequence number and a timestamp. If some of the data packets are not received, a real-time transport control protocol (RTCP) packet or a real-time streaming protocol (RTSP) packet, including information about packet loss and jitter, is transmitted to the server. The RTCP packet or the RTSP packet may be periodically transmitted or immediately transmitted as soon as packet loss occurs.
The ARQ method is introduced due to the fact that the server has information about reception environments, which was received from the clients, but data re-transmission is not performed. Accordingly, the FEC method can be used by the server transmitting the data after adding redundancy data to the data. When the server receives the RTCP packet or the RTSP packet, the server regulates Quality of Service (QoS) of the data transmission based on the information about reception environments, such as information on packet loss, jitter, etc., included in the received packet, and then transmits the data. The QoS of the data transmission is regulated by regulating the size of the redundancy data added according to the reception environments.
Quality of a streaming service depends on the status of the network. Accordingly, the quality of an image is maintained using an error correction method, such as the FEC method. When the status of the network is good, frequency of error occurrence is low. However, when the frequency of error occurrence is low, the redundancy data in the FEC method is a massive amount of unnecessary data in the network. When a streaming service, such as for an IP mobile TV, is provided in a wireless network, such dummy data not only deteriorates the QoS but also causes inefficient use of the network. Accordingly, the method in which the ARQ method and the FEC method are combined is used as described above, and the FEC method and the ARQ method are selectively used according to the status of network transmission. Consequently, an error correction method according to the data processing capacity of the client is not applied.